package com.ljx.DaJieJieShe;

/**
 * @author 李加喜
 * @Package com.ljx.DaJieJieShe
 * @date 2021-11-13 9:52
 */
public class DaJiaJieShe2 {
    public static void main(String[] args) {

    }
    public int rob(int[] nums) {
        int n=nums.length;
        if (n==1){
            return nums[0];
        }
        return Math.max(dp(nums,0,n-2),dp(nums,1,n-1));
    }

    /**
     * 因为是环形的  所以在第一个和最后一个不能同时选  不然就连在一起了
     * @param nums
     * @param start [start,end]
     * @param end
     * @return
     */
    private int dp(int[] nums, int start, int end) {
        int n=nums.length;
        // a1是当前不选 选择下一个  a2是选择下下一个
        int[] dp=new int[n+2];
        for (int i=end;i>=start;i--){
            dp[i]=Math.max(dp[i+1],nums[i]+dp[i+2]);
        }
        return dp[start];
    }
}
